package com.uppfind.framework.core.dao.api;

import com.uppfind.framework.core.dao.api.common.params.QueryParam;

import java.util.List;

/**
 * Created by xuliugen on 2017/6/29.
 */
public interface QueryMapper<Po, Pk> {

    List<Po> select(QueryParam param);

    /**
     * 查询记录总数，用于分页等操作。查询条件同 {@link GenericMapper#select}
     * @param param 查询参数
     * @return 查询结果，实现mapper中的sql应指定默认值，否则可能抛出异常
     */
    int total(QueryParam param);

    /**
     * 根据主键查询记录
     * @param pk 主键
     * @return 查询结果
     */
    Po selectByPk(Pk pk);
}
